There are ever increasing numbers of devices within the home, other buildings or the outdoor environment that have processing and communication capabilities which allow them to interact with other processing devices. Everyday objects and relatively small scale processing devices may be connected to each other and to central platforms as part of the “Internet of Things”. For example, a sprinkler system in the home may gather information from various moisture sensors and control the activation of sprinklers based on the moisture information. Also, a healthcare provider may use wireless sensors (e.g. a heart rate monitor or a sensor for monitoring that a patient is taking their prescribed medicine) to track the health of patients while at home.
Hence, in a variety of applications, there may be a central application providing apparatus which interacts with one or more agent devices which provide data to the application providing apparatus and/or are controlled by the application providing apparatus. The agent devices may differ considerably in terms of complexity, processing resources, hardware and purpose. It can be important to provide trust between the agent device and the application providing apparatus so that the application provider can trust the validity of the data received from the agent device and the agent device can trust any commands received from the application providing apparatus. However, since many agent devices in the Internet of Things may have little processing capability, providing resources in the agent device for establishing the trusted relationship with the application providing apparatus can be difficult and may significantly increase the cost of the agent device. The rapid and wide deployment of such agent devices means there is also a desire to make installation as quick and efficient as possible. The present technique seeks to address these problems.